package tp.algo2.futbol.refactoring.MiguelAngelLundaMedrano
import tp.algo2.futbol.Jugador
import java.util.List
import java.util.ArrayList
import tp.algo2.futbol.Partido

class EquipoBuilder {

	
	@Property List<Jugador> unEquipoBuilder
	@Property Partido partido
	
	new(){
		unEquipoBuilder = new ArrayList
	}
		new(List<Jugador> unEquipoBuilder) {
	
	}
	
	def formarEquipoDe(Partido partido){
		if(!partido.partidoIncompleto){   //cambiado a (!partido.partidoIncompleto) por Refactoring Alex Baico =)
		partido.jugadores
	}
	else {
		throw new Exception("no, faltan jugadores")
	}
	}
	
	def formarEquipo(){
	for(int i: 0..4){
		unEquipoBuilder.add((this.formarEquipoDe(partido)).get(i))
	}
	}
	
	def separacionTerminada(){
		unEquipoBuilder.clear
	}
	
	def Equipo getEquipo(){
	this.formarEquipo
	return new Equipo (unEquipoBuilder)
	}
	
	def tieneCinco(){
		unEquipoBuilder.size
	}
}
/*
 * de aca se crea el equipo de 5 tomando los jugadores de un partido 
 * ya seleccionado o tambien se podia usar un partidoBuilder para crear nuevos jugadores y asignarlo
 * a la coleccion de a separar de jugadores de esta clase
 * 
 * class PartidoBuilder {

def buildCondicional(){
	var J1 = new Jugador
	var C= new Condicional
	J1.tipoJugador=C
	return J1
	}

def buildEstandar(){
	var J2 = new Jugador
	var E=new Estandar
	J2.tipoJugador=E
	return J2
}

def buildSolidario(){
	var J3 = new Jugador
	var S = new Solidario
	J3.tipoJugador=S
	return J3
}

 * 
 *  
 */